//
//  TableViewCell.swift
//  UITableViewCellAutoFitRowHeight
//
//  Created by Xie Wei on 2020/1/3.
//  Copyright © 2020 Xie Wei. All rights reserved.
//

import UIKit
import SnapKit

class TableViewCell: UITableViewCell {
    
    lazy var lab: UILabel = {
        let lab = UILabel()
        lab.textColor = UIColor.red
        lab.numberOfLines = 0
        return lab
    }()
    
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        contentView.addSubview(lab)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        // 注⚠️：只对 UILabel 布局上下左右进行限制，不要对高度和宽度做限定
        lab.snp.makeConstraints { (make) in
            make.left.equalTo(15)
            make.right.equalTo(-15)
            make.top.equalTo(15)
            make.bottom.equalTo(-15)
        }
    }
    
    func update(_ str: String) {
        // 2、给cell子控件赋值
        lab.text = str
        // 3、调用layoutIfNeeded方法
        // 注⚠️：当 `cell` 调用 `layoutIfNeeded` 方法后，会立即调用 `layoutSubviews` 方法去布局 `cell` 的子控件。
        layoutIfNeeded()
    }
    
}
